Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2017, 12:24
Аспирант
Отправить личное сообщение для Fiks Посмотреть профиль Найти все сообщения от Fiks
 
Регистрация: 03.09.2016
Сообщений: 37

Ajax навигация.
Пытался сделать навигацию как в VK или других соц.сетях:
<html>
<head>
    <script type="text/javascript" src="/node_modules/html5-history-api/history.js"></script>
    <script type="text/javascript" src="/assets/vendors/bower_components/jquery/dist/jquery.js"></script>
    <script type="text/javascript">
        $(function() {
            var location = window.history.location || window.location;
            $(document).on('click', 'a.ajax', function() {
                history.pushState(null, null, this.href);
                $.ajax({
                    url: this.href,
                    success: function(data){
                        $("#content").html(data);
                    }
                });
                return false;
            });
            $(window).on('popstate', function(e) {

                $.ajax({
                    url: location.href,
                    success: function(data){
                        $("#content").html(data);
                    }
                });
            });
        });
    </script>
</head>
<body>
<a class="ajax" href="/test/page1.php">Page1</a>
<a class="ajax" href="/test/page2.php">Pgae2</a>
<div id="content"></div>
</body>
</html>


Как бы все работает, но если обновить страницу, то он тупо откроет тот файл, который был в адресной строке. Как этого избежать? Чтобы при обновление страницы, оставался этот контент, а так же само меню.

Последний раз редактировалось Fiks, 03.11.2017 в 12:31.
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2017, 16:20
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

надо передавать куда-то статичные данные местонахождения: куки, сессия
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2017, 16:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Тут был бред из-за недопонимания.

Последний раз редактировалось Nexus, 17.11.2017 в 17:20.
Ответить с цитированием
  #4 (permalink)  
Старый 17.11.2017, 16:35
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

Ну да, или Гет методом
Ответить с цитированием
  #5 (permalink)  
Старый 17.11.2017, 16:56
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,013

Сообщение от Fiks
но если обновить страницу, то он тупо откроет тот файл, который был в адресной строке.
так и должно быть. Весь смысл этих действий - иметь в адресной строке ссылку, по которой пользователь (и, главное, поисковик) сможет получить отрендеренную страницу.
Есть ещё "открыть в соседней вкладке" из контекстного меню - оно тоже будет открывать ссылку.

Обычно в аяксовый запрос добавляют заголовок "X-Requested-With", "XMLHttpRequest" (jQuery сам это делает, вроде), по которому сервер определяет, что это аякс и надо только содержимое для $("#content") вернуть. Без этого заголовка отдает всю страницу.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
AJAX навигация без якоря(Требуется помощ) Radik55rus AJAX и COMET 11 14.08.2014 10:34
AJAX навигация??? GooglaMor AJAX и COMET 1 25.11.2013 05:37
ajax, history, навигация, адресная строка и индексация. все в одном. firsttinman AJAX и COMET 3 24.10.2011 18:14
навигация AJAX кнопки назад - вперед FRIE AJAX и COMET 7 19.08.2010 13:38